package day02;

import java.util.Arrays;
import java.util.Scanner;

/*
二维数组：
    可以看成一个一维的数组，数组中的元素是数组。
    类似多行多列的表格结构。

    一维数组，存放学生的学号或学分。
    二维数组，同时存放学生学号和学分。
 */
public class Demo06 {
    public static void main(String[] args) {
        // 4*2的数组  4行2列
        int[][] students = {{10001, 90}, {10002, 99}, {10003, 88}, {10004, 70}};
        // 第一维：0~3
        // 第二维：0~1
        System.out.println("学号：" + students[0][0] + "，学分：" + students[0][1]);

        System.out.println(Arrays.toString(students[1]));

        //可以看成一个一维的数组，数组中的元素是数组。所以打印下来，数组中是内存地址
        System.out.println(Arrays.toString(students));

        System.out.println(students.length);
        System.out.println(students[0].length);

        /*
        两层循环遍历二维数组，根据索引获取元素
         */
        System.out.println("学号, 学分");
        for (int i = 0; i < students.length; i++) {// 行
            // 每个学生的信息打印到一行，逗号分隔
            for (int j = 0; j < students[i].length; j++) { // 列
                System.out.print(students[i][j] + ", ");
            }
            // 打印完一个学生的信息后，换行
            System.out.println();
        }

        System.out.println("======================");
        /*
        foreach 遍历二维数组
         */
        for (int[] student : students) {// students 二维数组的元素为一维数组，放到student中
            System.out.println("调试信息：" + Arrays.toString(student));
            // 每个学生的信息打印到一行，逗号分隔
            for (int i : student) { // student 一维数组的元素是 int类型的，放到i中
                System.out.print(i + ", ");
            }
            // 打印完一个学生的信息后，换行
            System.out.println();
        }
        // 创建一个数组，没有初始化
        int[][] students2 = new int[3][5];
        students2[0][0] = 100;

        /*
        练习：
        从键盘输入3个班的成绩，每个班有5名学生。将结果存放到二维数组中，计算每个班的总成绩。
         */
        int[][] scores = new int[3][5];
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < 3; i++) {
            System.out.println("请输入第" + (i + 1) + "个班的成绩：");
            int sum = 0;
            for (int j = 0; j < 5; j++) {
                // 一个学生的成绩
                int score = scanner.nextInt();
                scores[i][j] = score;
                sum = sum + score;
            }
            System.out.println("第" + (i + 1) + "个班的总成绩：" + sum);
        }
    }
}
